草庐IT

MySQL ORDER BY 多列 ASC 和 DESC

全部标签

mysql - ORDER BY ASC 底部有空值

我正在编写一个将学校表连接到地区表的SQL查询。简单的一对多关系,每所学校都隶属于一个学区。我的查询如下:SELECTschools.idASschoolid,schools.nameASschool,districts.idASdistrictid,districts.nameASdistrictFROMsms_schoolsASschoolsLEFTJOINsms_districtsASdistrictsONschools.districtid=districts.idWHERE1=1ORDERBYdistricts.name,schools.name我之所以选择左连接,是因为并非

php - MySQL ORDER BY rand(),名称为 ASC

我想获取一个包含1000个用户的数据库并选择20个随机用户(ORDERBYrand(),LIMIT20)然后按以下顺序排序结果集名字。我想出了以下查询,它没有像我希望的那样工作。SELECT*FROMusersWHERE1ORDERBYrand(),nameASCLIMIT20 最佳答案 使用子查询:SELECT*FROM(SELECT*FROMusersORDERBYrand()LIMIT20)T1ORDERBYname内部查询随机选择20个用户,外部查询按名称对选定的用户进行排序。

php - MySQL ORDER BY rand(),名称为 ASC

我想获取一个包含1000个用户的数据库并选择20个随机用户(ORDERBYrand(),LIMIT20)然后按以下顺序排序结果集名字。我想出了以下查询,它没有像我希望的那样工作。SELECT*FROMusersWHERE1ORDERBYrand(),nameASCLIMIT20 最佳答案 使用子查询:SELECT*FROM(SELECT*FROMusersORDERBYrand()LIMIT20)T1ORDERBYname内部查询随机选择20个用户,外部查询按名称对选定的用户进行排序。

MySQL:获取多列的 MAX 或 GREATEST,但具有 NULL 字段

我正在尝试在每条记录的三个不同字段中选择最大日期(MySQL)所以,在每一行中,我都有date1、date2和date3:date1总是被填充,date2和date3可以为NULL或空GREATEST语句简单明了,但对NULL字段没有影响,因此效果不佳:SELECTid,GREATEST(date1,date2,date3)asdatemaxFROMmytable我也尝试过像这样更复杂的解决方案:SELECTCASEWHENdate1>=date2ANDdate1>=date3THENdate1WHENdate2>=date1ANDdate2>=date3THENdate2WHENda

MySQL:获取多列的 MAX 或 GREATEST,但具有 NULL 字段

我正在尝试在每条记录的三个不同字段中选择最大日期(MySQL)所以,在每一行中,我都有date1、date2和date3:date1总是被填充,date2和date3可以为NULL或空GREATEST语句简单明了,但对NULL字段没有影响,因此效果不佳:SELECTid,GREATEST(date1,date2,date3)asdatemaxFROMmytable我也尝试过像这样更复杂的解决方案:SELECTCASEWHENdate1>=date2ANDdate1>=date3THENdate1WHENdate2>=date1ANDdate2>=date3THENdate2WHENda

mysql - 多列主键中的 NULL 值

我有一个表,其中有几列构成主键。所存储数据的性质允许其中一些字段具有NULL值。我的table是这样设计的:CREATETABLE`test`(`Field1`SMALLINT(5)UNSIGNEDNOTNULL,`Field2`DECIMAL(5,2)UNSIGNEDNULLDEFAULTNULL,PRIMARYKEY(`Field1`,`Field2`))COLLATE='latin1_swedish_ci'ENGINE=InnoDB;但是,当我运行describetest时,它显示如下:||*Field*||*Type*||*Null*||*Key*||*Default*||*E

mysql - 多列主键中的 NULL 值

我有一个表,其中有几列构成主键。所存储数据的性质允许其中一些字段具有NULL值。我的table是这样设计的:CREATETABLE`test`(`Field1`SMALLINT(5)UNSIGNEDNOTNULL,`Field2`DECIMAL(5,2)UNSIGNEDNULLDEFAULTNULL,PRIMARYKEY(`Field1`,`Field2`))COLLATE='latin1_swedish_ci'ENGINE=InnoDB;但是,当我运行describetest时,它显示如下:||*Field*||*Type*||*Null*||*Key*||*Default*||*E

MySQL Sum() 多列

我有一张学生记分卡表。这是table,subject|mark1|mark2|mark3|......|marknstud1|99|87|92||46stud2|......................................studn|....................................|现在,我需要为每个学生的总分求和。我通过使用sum(mark1+mark2+...+markn)groupbystud得到它。我想知道如何在不添加每个列名的情况下对其求和,以防万一达到标记26。所以任何人都知道如何解决它。提前致谢。 最佳答

MySQL Sum() 多列

我有一张学生记分卡表。这是table,subject|mark1|mark2|mark3|......|marknstud1|99|87|92||46stud2|......................................studn|....................................|现在,我需要为每个学生的总分求和。我通过使用sum(mark1+mark2+...+markn)groupbystud得到它。我想知道如何在不添加每个列名的情况下对其求和,以防万一达到标记26。所以任何人都知道如何解决它。提前致谢。 最佳答

sql - MySQL:从内联子查询返回多列

我正在创建一个SQL语句,它将返回每月的销售摘要。摘要将列出日期、销售总数和销售总值的一些简单列。但是,除了这些列之外,我还想再添加3个列,这些列将按花费的金额列出最佳客户的月份。对于这些列,我需要某种内联子查询,可以返回它们的ID、名称和花费的金额。我目前的工作是使用内联SELECT语句,但是,根据我对如何实现这些的了解,每个内联语句只能返回一列和一行。为了在我的场景中解决这个问题,我当然可以创建3个单独的内联语句,但是,除了这看起来不切实际之外,它还会增加查询时间。SELECTDATE_FORMAT(OrderDate,'%M%Y')ASOrderMonth,COUNT(Order